package dao;

import hbt.HibernateUtil;

import negocio.OrdenCompra;

import org.hibernate.SessionFactory;
import org.hibernate.classic.Session;

public class OrdenCompraDAO {

	private static OrdenCompraDAO instancia;
	private static SessionFactory sf;
	
	
	
	public static OrdenCompraDAO getinstancia(){
		if(instancia==null){
			instancia=new OrdenCompraDAO();
			sf=HibernateUtil.getSessionFactory();
		}
		return instancia;
		
	}
	
	
	public void PersistOrdenCompra(OrdenCompra o){
		Session s = sf.openSession();
		s.beginTransaction();
		s.persist(o);
	
		s.flush();
		s.getTransaction().commit();
	}


	public int asignarOrdenId(OrdenCompra o) {
		Session s = sf.openSession();
		int id;
		Object ob =  s.createQuery("select MAX(o.id_orden_de_compra) from OrdenCompra o").uniqueResult();
		if(ob == null)
			id=1;
		else
			id=(int)ob + 1;
		return id;
			
		
	}


	public int getNumeroId(int numeroOrden) {
		Session s = sf.openSession();
		int id = (int) s.createQuery("select o.id_orden_de_compra from OrdenCompra o where o.numeroOrden = :numeroOden ").uniqueResult();
		return id;
	}
	
	public OrdenCompra getOrden(int id) {
		Session s = sf.openSession();
		s.beginTransaction();
		OrdenCompra o = new OrdenCompra();
		o.setId_orden_de_compra(id);
		s.load(o, o.getId_orden_de_compra());
		s.flush();
		s.getTransaction().begin();
		return o;
		
	
	
	}

}
